Міністерство освіти і науки України
Хмельницький національний університет
Кафедра системного програмування
Лабораторна робота №4
з програмування
на тему:
«Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами»
Лабораторна робота №3
Тема: Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами.
Мета:ознайомитись з інструментальним середовищем програмування Delphi та його простими візуальними об’єктами.
Завдання
Розробити проект, що табулює задану функцію на відрізку АВ з кроком h=(B-A)/(n-1). На головній формі проекту вводяться початкові дані (початок та кінець відрізка АВ, крок табулювання h, кількість ітерацій n, а також значення додаткових змінних) та розміщуються кнопки: виклик форм відображення результатів та кнопка завершення проекту в цілому. На другій формі розмістити графік функції, при цьому заборонити закриття цієї форми стандартними засобами. На тертій формі розмістити результати табулювання функції у вигляді таблиці. Таблиця організована за допомогою компонента TStringGrid. При цьому в першій колонці вказується номер ітерації, в другій колонці – аргумент функції, в третій – результат обчислення, в четверту виводиться умова, відповідно до якої проведено обчислення функції.
Забезпечити введення початкових даних по замовчуванню. При введенні заданих величин або зміні їхнього значення автоматично повинно обчислюватись значення незаданої величини і виводитись у відповідне поле. При введенні некоректних даних в форму видати повідомлення про помилку і без виведення результатів.
(x-z)/x, 0<=x<1.5
y = (ln x2)/(lg x3) + M, 1.5<=x<2.5
[cos(x/s) + sin(s/x) ]*z, x>2.5
Unit1.pas
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
unit2,unit3;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton; Button2: TButton; Button3: TButton;
Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit;
Edit5: TEdit; Edit6: TEdit; Edit7: TEdit;
GroupBox1: TGroupBox; GroupBox2: TGroupBox;
Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel;
Label5: TLabel; Label6: TLabel; Label7: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure Edit2KeyPress(Sender: TObject; var Key: char);
procedure Edit3Change(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: char);
procedure Edit5KeyPress(Sender: TObject; var Key: char);
procedure Edit6KeyPress(Sender: TObject; var Key: char);
procedure Edit7KeyPress(Sender: TObject; var Key: char);
private
{ private declarations }
public
{ public declarations }
end;
var Form1: TForm1; A,B,Z,M,S:real; N,H:integer;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
if MessageDlg('Табуляція','Дійсно закрити?',mtWarning,mbYesNo,0)=mrYes then Form1.Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Z:=StrToFloat(Edit5.Text); M:=StrToFloat(Edit6.Text); S:=StrToFloat(Edit7.Text);
A:=StrToFloat(Edit1.Text); B:=StrToFloat(Edit2.Text); H:=StrToInt(Edit3.Text);
if H<>0 then N:=trunc(abs(A-B)/H)+1;
if (S=0) then ShowMessage('Змінна S не може дорівнювати 0!') else
if (H=0) then ShowMessage('Крок H не може дорівнювати 0!') else Form2.Show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Z:=StrToFloat(Edit5.Text); M:=StrToFloat(Edit6.Text); S:=StrToFloat(Edit7.Text);
A:=StrToFloat(Edit1.Text); B:=StrToFloat(Edit2.Text); H:=StrToInt(Edit3.Text);
if H<>0 then N:=trunc(abs(A-B)/H)+1;
if (S=0) then ShowMessage('Змінна S не може дорівнювати 0!') else
if (H=0) then ShowMessage('Крок H не може дорівнювати...